package org.example.test5.controller;

import org.example.test5.service.CardService;
import org.example.test5.model.Card;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;


@Controller
@RequestMapping("/card")
public class CardController {

    @Autowired
    private CardService cardService;

    // 显示名片列表
    @GetMapping("/main")
    public String showMainPage(Model model) {
        model.addAttribute("cards",cardService.findAll());
        return "main"; // 显示主页面
    }

    // 显示添加名片页面
    @GetMapping("/addCard")
    public String showAddCardPage() {
        return "addCard";
    }

    // 添加名片
    @PostMapping("/addCard")
    public String addCard(@ModelAttribute Card card) {
        cardService.addCard(card);
        return "redirect:/card/main"; // 重定向到主页面
    }

    // 显示名片详情页面
    @RequestMapping("/detail")
    public String showDetailPage(@RequestParam("id") int id,Model model) {
        model.addAttribute("card",cardService.findCardById(id));
        return "detail";
    }

    // 显示更新名片页面
    @GetMapping("/update")
    public String showUpdateCardPage(@RequestParam("id") int id, Model model) {
        Card card = cardService.findCardById(id);
        model.addAttribute("card", card);
        return "updateCard";
    }

    // 更新名片
    @PostMapping("/update")
    public String updateCard(@ModelAttribute Card card) {
        cardService.updateCard(card);
        return "redirect:/card/main"; // 重定向到主页面
    }

    // 删除名片
    @PostMapping("/delete")
    public String deleteCard(@RequestParam("id") int id) {
        cardService.deleteCard(id);
        return "redirect:/card/main"; // 重定向到主页面
    }

    // 修改密码页面
    @GetMapping("/updatepwd")
    public String updatePwd(){
        return "updatePassword";
    }

    //修改密码
    @PostMapping("/updatepwd")
    public String updatePwd(@RequestParam("name") String name,@RequestParam("newPassword") String newPassword){
        cardService.updatePassword(name,newPassword);
    	return "redirect:/card/main";
    }

}